Network storage is a common approach to backing up data, making large amounts of data accessible to multiple users, and other purposes. In a network storage environment, a storage server makes data available to client (host) systems by presenting or exporting to the clients one or more logical containers of data. There are various forms of network storage, including network attached storage (NAS) and storage area network (SAN). In a NAS context, a storage server services file-level requests from clients, whereas in a SAN context a storage server services block-level requests. Some storage servers are capable of servicing both file-level requests and block-level requests.
There are two important trends today in the field of network storage. First, companies today more commonly package their products as virtual storage servers (VSSs) instead of as dedicated (special-purpose) physical storage servers. This trend is driven primarily by cost considerations (i.e., it allows lower cost, generic server hardware to be used) and made feasible by the widespread use of system virtualization software in data centers. Second, data centers are increasingly starting to use “shared-nothing” storage environments, i.e., environments in which separate physical hosts do not share their storage with each other. For example, in place of dedicated network storage servers, the copious direct-attached storage (DAS) in commodity servers can be pooled to provide “virtual” network storage systems. This trend is due to the higher capacities of today's hard drives, as well as a desire not to waste available storage space provided by these commodity servers.
Many storage servers today implement some form of high-availability (HA) capability, which is the capability to provide uninterrupted service in the event of a failure of one or more components in the system. HA capability normally involves running multiple redundant storage servers attached to mutually shared storage. However, implementing HA capability becomes problematic when virtual storage servers are employed with shared-nothing storage. In particular, HA capability relies upon storage being mutually shared between two or more redundant storage servers. In the prior art, because DAS is not used, each storage server has the ability to access directly the storage owned by the other storage server(s) (its HA partners(s)). Such sharing is difficult if not impossible when DAS storage is used, however, since a storage server has no direct access to another storage server's DAS storage. Some potential solutions to this problem require modifications to the HA mechanisms or the use of additional pieces of software, thus undesirably increasing the complexity of the overall solution.